package 构造器模式;

/**
 * 构造器模式
 *   构造一个复杂的对象，很多的属性，有些属性构造的时候需要做一些校验，格式转换
 *
 *   好处:
 *      1:通过builder接口，将复杂构建步骤拆分成多个部分，代码逻辑清晰，维护性 扩展性很好
 *      2:将对象的构建过程，封装在director里面，director来基于builder进行构建，构建逻辑修改，不需要修改很多代码
 *      3: 相对于工厂，有一个很好的抽象设计，
 *          director 是面向builder的接口 来编程的。将复杂构建的一个步骤，具体的每个步骤的逻辑封装在具体的builder类中
 */
public class TestBuilder {

    public static void main(String[] args) {
        NewConcretBuilder newConcretBuilder = new NewConcretBuilder();
        Product product = newConcretBuilder.field1("111").field2("222").field3("433").createProduct();

    }
}
